A computing platform is a combination of hardware architecture and a software framework in which software runs. A platform can include a computer's architecture, operating system, available programming languages and related user interfaces. Often similar software runs on different computing platforms. For example, an application such as for example a Silverlight® application can run on a PC (personal computer), a Windows® Phone 7 and on a Macintosh computer without modification. All of these devices probably do not use the same operating system. For example, the mobile device may run Windows CE (Windows Embedded Compact or Windows Embedded CE), an operating system developed by Microsoft Corporation for minimalistic computers, mobile devices and embedded systems. The PC may run Windows 7, an operating system developed by Microsoft Corporation for full-service desktop and laptop computers while the Macintosh computer may run Mac OS X. In addition to being able to run on different devices with different operating systems, an application may be expected to run in different software frameworks. A software framework is a type of program code library that abstracts platform-specific functionality so that it can be used in a generic manner, and can be selectively overridden or specialized by user code to provide a specific functionality. For example, Silverlight is an application framework created by Microsoft Corporation for writing and running Internet applications.
Portability refers to the feasibility of using code created for one platform and running it on another platform instead of creating new code for the second platform. Generally, in order for software to be portable, application logic has to be abstracted from system interfaces. When targeting several platforms with the same application, portability can translate to development cost and time-to-market reductions.